using System;
using System.Collections.Generic;
using System.Threading;

namespace Conusic
{
    public interface IFriendsListCommand
    {
        void Execute(List<Friend> friends);
    }

    public interface IGroupsListCommand
    {
        void Execute(List<Group> group);
        void Fail(Exception exc);
    }

    public interface IAudioSearchCommand
    {
        void Execute(List<AudioRecord> listAudio);
    }

    public interface IAudioOneSearchCommand
    {
        void Execute(AudioRecord audio);
    }

    public interface IDownloadSongCommand
    {
        void Success();
        void Fail(Exception ext);
        void ProgressExecute(long downloadedKb, long totalKb);
    }

    public interface IGetProfileByUrlCommand
    {
        void Execute(Profile profile);
        void Fail(Exception exc);
    }

    public interface IAuthorizationCommand
    {
        void Execute(string sid);
        void FailAuthorization(Exception exception);
        Captcha CaptchaHandler { get; set; }
    }

    public interface ICheckAuthorizationCommand
    {
        void Success();
        void Fail();
    }

    public interface IPostGraffitiCommand
    {
        bool OfficialCheck();
        void Execute(Profile id);
        void Fail(Exception exc);
        void Progress(int percent);
        Captcha CaptchaHandler { get; set; }
    }
}